package com.weiqiao.mall.service;

import com.weiqiao.mall.domain.CarouseEntity;
import com.weiqiao.mall.service.dto.SlideDTO;
import org.bson.conversions.Bson;
import org.springframework.data.domain.Pageable;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 轮播图业务层
 *
 */
public interface ISlideshowService {
    /**
     * 通过条件获取货架的信息
     *
     * @param filter
     * @return
     */
    CarouseEntity getCarouseInf(Bson filter);

    /**
     * 通过条件获取轮播图
     *
     * @param filter 查询条件
     */
    List<CarouseEntity> getCarouseList(Bson filter);

    /**
     * 更新轮播图信息 新增 修改
     *
     * @param filter 查询条件
     * @param json   更新内容
     */
    boolean updateCarouse(Bson filter, String json);

    /**
     * 分页获取轮播图列表
     *
     * @param request  查询条件
     * @param pageable 分页排序参数
     */
    Map findCarouse(HttpServletRequest request, Pageable pageable);

    /**
     * 统计轮播图个数
     *
     * @param bson 查询条件
     */
    int countSlideshow(Bson bson);

    /**
     * 轮播图集合
     * @param request 请求条件
     * @return
     */
    List<SlideDTO> getSlideList(HttpServletRequest request);

    /**
     * 删除轮播图
     *
     * @param request
     * @return
     */
    Map deleteById(HttpServletRequest request);

    /**
     * 保存轮播图
     *
     * @param carouse 轮播图实体
     * @return
     */
    Map saveSlideshow(CarouseEntity carouse);
}
